package io.实例;

import java.io.File;
import java.util.Scanner;
/*
  扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录）
  并且后续询问用户是否要删除该文件
 */
public class demo10 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        //1、让用户输入一个需要扫描的目录
        System.out.println("请输入需要扫描的路径：");
        String path=scanner.next();
        File rootpath=new File(path);
        if(!rootpath.isDirectory()){
            System.out.println("您输入的扫描的路径有误");
            return;
        }
        //2、输入需要查询的关键词
        System.out.println("请输入需要删除文件的关键词");
        String word= scanner.next();
        //3、进行扫描
        scanDir(rootpath,word);
    }

    private static void scanDir(File rootpath, String word) {
        //1、先列出rootPath中所有的文件和目录
        File[] files=rootpath.listFiles();
        if(files==null){
            return;
        }
        //2、遍历元素，针对不同类型做出不同处理
        for (File f:files) {
            //加个日志，方便观察当前递归执行过程
            System.out.println("当前扫描的文件："+f.getAbsolutePath());
            if (f.isFile()){
                //普通文件--检查文件是否要删除，并执行删除操作
                checkDelete(f,word);
            }else{
                //目录
                scanDir(f,word);
            }
        }

    }
    private static void checkDelete(File f, String word) {
        if (!f.getName().contains(word)){
            return;
        }
        //需要删除
        System.out.println("当前文件为"+f.getAbsolutePath()+"，请确认是否要删除(Y/N)");
        Scanner scanner=new Scanner(System.in);
        String choice=scanner.next();
        if (choice.equals("Y") || choice.equals("y")){
            f.delete();
            System.out.println("删除完毕");
        }else{
            //如果输入其他值，取消删除
            System.out.println("取消删除");
        }
    }
}

























